<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
 <script>
  /*
  万物皆对象
  js中几乎所有的数据都可以看成对象
  书写方式：
  
  {
      属性：属性值，
      属性：属性值，

  }
  
  在浏览器的全局中已经声明了一个变量 name
  
  typeof 对象 返回 "object"

  typeof null 返回 "object"

  用typeof 没有办法精确的判断类型

  null: 是一个用来赋值的数据，作为对象不存在的时候的占位符

  对象属性的增删改查：

  1.对象属性查询:

  obj.a 访问对象的"a"属性

  obj[a] 访问对象的a属性，其中a是变量，a的值需要查询 []里面可以添加表达式，表达式是最终能够得出一个值的式子

  obj["a"] 同obj.a

  
  
  2.对象属性增加：

  对象.属性名 = "属性值"

  obj.a = "nan"

  obj["a"] = "nan"

  obj[a] ="nan" 设置对象的a的属性，其中a是变量，a的值需要查询,即：
  let a ="sex" obj[a] ="nan"



  3.对象属性修改：
  同属性增加一样，对已有属性进行设置



  4.对象属性删除：

  delete obj.a

  delete obj["a"]


  特殊的对象：
     数组：有序的物体的集合：用中括号包裹
     querySelecterAll 返回的值可以看成是一个数组
     有下标：0,1,2



  */ 

let studentList = ["a同学","b同学","c同学"]

console.log(studentList["length"])

  /**
   *
   * JS 有六大数据类型
   *  数值:         计算表示多少等
   *  字符串:       描述文字
   *  布尔值:       表示状态或者状态的改变, 真假
   *  undefined:    表示未定义或者属性不存在
   *  null:         表示不存在的对象, 清空归零对象 初始化对象
   *
   *  对象: 描述物体属性方法的集合, 他是一个整体, 使用对象的时候开发会变得很方便
   *    ....
   *
   */




  // let studentList = ["童同学", "麻辣烫", "倾城"]
  // console.log(typeof studentList)


  // let a = "name"
  //
  //
  // let obj = {
  //   name: "银时",
  //   age: 18,
  //   skill: "死歌"
  // }

  // ...

  // delete obj["阿斯达所大所多"]
  //
  // console.log(obj)

  // let s = "sex"

  // 一年之后
  // obj.age = obj.age + 1


  // 增加一条属性:
  // obj[s] = "男"
  //
  // console.log(obj["na" + "me"])

  // obj.skill1 = "...."


  // let obj2 = null
  //
  // console.log(typeof obj2)

  // console.log(obj.name)



 </script>
</body>
</html>